package com.gopay.common.cps.dao.wallet.tyy;

import com.gopay.common.base.dao.BaseDAO;
import com.gopay.common.domain.dps.WaTyyBizOrderDtl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
 * 
 * @author dps
 *
 */
public interface WaTyyBizOrderDtlDao extends BaseDAO<WaTyyBizOrderDtl, Serializable>{
    /**
     * 获取Tyy Contract序列
     * @return
     */
    String getWaTyyContractId();
    
    /**
     * 获取天溢盈业务订单信息
     * @param params
     * @return
     */
    List<WaTyyBizOrderDtl> getOrderDtlByCondition(Map<String, Object> params);

    /**
     * 获取用户持有中的天溢盈业务订单信息
     * @param custId
     * @return
     */
    List<WaTyyBizOrderDtl> getOrderDtlByCondition(String custId,int purchaseState,int pageIndex,int pageSize);

    /**
     * 根据订单号，查询天溢盈业务订单信息。
     * @param orderId
     * @return
     */
    public WaTyyBizOrderDtl getWaTyyBizOrderDtl(String orderId);

    /**
     * 根据国付宝理财支付订单号，查询天溢盈业务订单信息。
     * @param gfborderId
     * @return
     */
    public WaTyyBizOrderDtl getWaTyyBizOrderDtlByGFBPurchaseOrderId(String gfborderId);

    /**
	 * 根据国付宝理财兑付本金或利息订单号，查询天溢盈业务订单信息。
	 *
	 * @param gfborderId
	 * @return
	 * add by tanyang at 20170602
	 */
	public WaTyyBizOrderDtl getWaTyyBizOrderDtlByOrderId(String gfborderId) ;
	
    /**
     * 生成主键
     * @return
     */
    String getOrderId();

    /**
     * 获取用户已完成的天溢盈业务订单信息
     * @param custId
     * @param purchaseState
     * @param pageIndex
     * @param pageSize
     * @return
     */
     List<WaTyyBizOrderDtl> getFinishOrderDtlByCondition(String custId,int purchaseState,int pageIndex,int pageSize);

    /**
     * 根据国付宝理财兑付本金订单号，查询天溢盈业务订单信息。
     *
     * @param gfborderId
     * @return
     */
     WaTyyBizOrderDtl getWaTyyBizOrderDtlByRepayGopayOrderId(String gfborderId);
     
    /**
     * 根据合同Id
     * @param contractId
     * @return
     */
    WaTyyBizOrderDtl    getByContractId(String contractId);
    
    String getOrderDtlByConditionCount(String custId,int purchaseState);
    /**
     * 根据custId查询是否成功购买过天溢盈
     * @param custId
     * @return
     */
    public int getCountBycustId(String custId);
}
